#ifndef _SHAPE_MGR
#define _SHAPE_MGR

class PrimitiveShapeManager
{
public:
	struct OncePerFrame {Mat4 proj; Mat4 view;};
	struct Vertex {Vector3 position;};

	void Init(class RenderSystem *render_system);
	void CreateCube(int x, int y, int z, int width, int height, int depth, class RenderSystem *render_system);
	void Shut();

	void Render(class RenderSystem *render_system, class Camera *camera);

	private:
	void Subdivide(Vector3& v0, Vector3& v1, Vector3& v2, int depth);
	std::vector<Vector3> mSubdivision;
	Shader mShader;
	Texture mTexture;
	DepthState mDepthState;
	Renderable mRenderable;
};

#endif //_SHAPE_MGR